package com.tushen.labor.util;

import android.content.Context;
import android.util.Log;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.bumptech.glide.request.RequestOptions;


public class ImageUtil {

    private static ImageUtil mInstance = null;

    public static ImageUtil getInstance() {
        if (mInstance == null) {
            synchronized (ImageUtil.class) {
                if (mInstance == null) {
                    mInstance = new ImageUtil();
                }
            }
        }
        return mInstance;
    }

    public void displayImage(Context c, String url, ImageView iv, int defaultImageResourceId) {

        displayImage(c,url,iv,defaultImageResourceId,false,0);

    }
    public void displayImage(Context c, String url, ImageView iv, int defaultImageResourceId,boolean roundCorner,int radius) {

        if (c == null || iv == null) {
            return;
        }


//        if (Util.isEmpty(url)) {
//            return;
//        }

        try {
            /**
             * //加载图片为100*100像素的尺寸 .override(100, 100) 前提是目标ImageView的宽度和高度都设置为wrap_content。
             * //DiskCacheStrategy
             * ALL：缓存源资源和转换后的资源（即缓存所有版本图像，默认行为）
             * NONE：不作任何磁盘缓存，然而默认的它将仍然使用内存缓存
             * SOURCE：仅缓存源资源（原来的全分辨率的图像）
             * RESULT：缓存转换后的资源（最终的图像，即降低分辨率后的或者是转换后的）
             * **/
            RequestOptions options = new RequestOptions().error(defaultImageResourceId);//图片圆角为30
            if (roundCorner){
                options = options.bitmapTransform(new RoundedCorners(radius));
            }
            Log.i("url ", url);
            Glide.with(c).load(url) //图片地址
                    .apply(options)
                    .into(iv);

//            DrawableRequestBuilder<String> build = Glide.with(c).load(Util.encodeURL(url));
//
//            build.diskCacheStrategy(DiskCacheStrategy.RESULT);
//            build.thumbnail(0.5f);//先加载缩略图然后在加载全图
//
//            build
//                    .crossFade()
//                    .priority(Priority.LOW)
//                    .placeholder(defaultImageResourceId);
//
//
//            final WeakReference<ImageView> imageViewWeakReference = new WeakReference<>(iv);
//            ImageView target = imageViewWeakReference.get();
//            if (target != null) {
//                target.setImageResource(defaultImageResourceId);
//                build.into(target);
//            } else {
//                iv.setImageResource(defaultImageResourceId);
//                build.into(iv);
//            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }


}
